Room Draw

Permutation Experiment

Kevin Valdivia

2024-12-06

Objectives

Simulate the average probability of getting my preferred room across random room draw over number of draws

  • Room types: red (1st choice), blue (2nd), green (3rd)
  • Preferences: 60% prefer red, 30% blue, 10% green
  • Room availability: 30 red, 30 blue, 40 green
  • Total students: 100 (all in the same room)

Functions Used

  • room_pref: Assigns prefrences to people before me
  • space_identifier: Checks for room availability
  • room_assignment: Assigns rooms to people before me
  • my_room: Returns my room assignment in one random draw
  • room_draws: Returns a tibble with # of room draws & avg probabilites of me getting each room
    draws  room proportion
1       1   red 1.00000000
2       1  blue 0.00000000
3       1 green 0.00000000
4       2   red 0.50000000
5       2  blue 0.00000000
6       2 green 0.50000000
7       3   red 0.66666667
8       3  blue 0.33333333
9       3 green 0.00000000
10      4   red 0.25000000
11      4  blue 0.00000000
12      4 green 0.75000000
13      5   red 0.20000000
14      5  blue 0.00000000
15      5 green 0.80000000
16      6   red 0.66666667
17      6  blue 0.16666667
18      6 green 0.16666667
19      7   red 0.14285714
20      7  blue 0.00000000
21      7 green 0.85714286
22      8   red 0.50000000
23      8  blue 0.37500000
24      8 green 0.12500000
25      9   red 0.55555556
26      9  blue 0.11111111
27      9 green 0.33333333
28     10   red 0.50000000
29     10  blue 0.20000000
30     10 green 0.30000000
31     11   red 0.54545455
32     11  blue 0.27272727
33     11 green 0.18181818
34     12   red 0.58333333
35     12  blue 0.16666667
36     12 green 0.25000000
37     13   red 0.61538462
38     13  blue 0.23076923
39     13 green 0.15384615
40     14   red 0.50000000
41     14  blue 0.21428571
42     14 green 0.28571429
43     15   red 0.53333333
44     15  blue 0.13333333
45     15 green 0.33333333
46     16   red 0.68750000
47     16  blue 0.12500000
48     16 green 0.18750000
49     17   red 0.47058824
50     17  blue 0.23529412
51     17 green 0.29411765
52     18   red 0.38888889
53     18  blue 0.22222222
54     18 green 0.38888889
55     19   red 0.31578947
56     19  blue 0.31578947
57     19 green 0.36842105
58     20   red 0.65000000
59     20  blue 0.15000000
60     20 green 0.20000000
61     21   red 0.57142857
62     21  blue 0.23809524
63     21 green 0.19047619
64     22   red 0.50000000
65     22  blue 0.09090909
66     22 green 0.40909091
67     23   red 0.60869565
68     23  blue 0.17391304
69     23 green 0.21739130
70     24   red 0.50000000
71     24  blue 0.20833333
72     24 green 0.29166667
73     25   red 0.40000000
74     25  blue 0.24000000
75     25 green 0.36000000
76     26   red 0.57692308
77     26  blue 0.19230769
78     26 green 0.23076923
79     27   red 0.33333333
80     27  blue 0.44444444
81     27 green 0.22222222
82     28   red 0.46428571
83     28  blue 0.25000000
84     28 green 0.28571429
85     29   red 0.44827586
86     29  blue 0.27586207
87     29 green 0.27586207
88     30   red 0.46666667
89     30  blue 0.20000000
90     30 green 0.33333333
91     31   red 0.51612903
92     31  blue 0.12903226
93     31 green 0.35483871
94     32   red 0.56250000
95     32  blue 0.12500000
96     32 green 0.31250000
97     33   red 0.63636364
98     33  blue 0.18181818
99     33 green 0.18181818
100    34   red 0.44117647
101    34  blue 0.14705882
102    34 green 0.41176471
103    35   red 0.37142857
104    35  blue 0.40000000
105    35 green 0.22857143
106    36   red 0.47222222
107    36  blue 0.19444444
108    36 green 0.33333333
109    37   red 0.48648649
110    37  blue 0.21621622
111    37 green 0.29729730
112    38   red 0.65789474
113    38  blue 0.10526316
114    38 green 0.23684211
115    39   red 0.56410256
116    39  blue 0.17948718
117    39 green 0.25641026
118    40   red 0.40000000
119    40  blue 0.25000000
120    40 green 0.35000000
121    41   red 0.34146341
122    41  blue 0.31707317
123    41 green 0.34146341
124    42   red 0.40476190
125    42  blue 0.21428571
126    42 green 0.38095238
127    43   red 0.46511628
128    43  blue 0.16279070
129    43 green 0.37209302
130    44   red 0.50000000
131    44  blue 0.25000000
132    44 green 0.25000000
133    45   red 0.53333333
134    45  blue 0.20000000
135    45 green 0.26666667
136    46   red 0.52173913
137    46  blue 0.17391304
138    46 green 0.30434783
139    47   red 0.38297872
140    47  blue 0.19148936
141    47 green 0.42553191
142    48   red 0.47916667
143    48  blue 0.20833333
144    48 green 0.31250000
145    49   red 0.59183673
146    49  blue 0.18367347
147    49 green 0.22448980
148    50   red 0.44000000
149    50  blue 0.26000000
150    50 green 0.30000000
151    51   red 0.60784314
152    51  blue 0.13725490
153    51 green 0.25490196
154    52   red 0.51923077
155    52  blue 0.26923077
156    52 green 0.21153846
157    53   red 0.47169811
158    53  blue 0.13207547
159    53 green 0.39622642
160    54   red 0.44444444
161    54  blue 0.22222222
162    54 green 0.33333333
163    55   red 0.52727273
164    55  blue 0.18181818
165    55 green 0.29090909
166    56   red 0.51785714
167    56  blue 0.12500000
168    56 green 0.35714286
169    57   red 0.50877193
170    57  blue 0.21052632
171    57 green 0.28070175
172    58   red 0.46551724
173    58  blue 0.17241379
174    58 green 0.36206897
175    59   red 0.54237288
176    59  blue 0.27118644
177    59 green 0.18644068
178    60   red 0.38333333
179    60  blue 0.30000000
180    60 green 0.31666667
181    61   red 0.54098361
182    61  blue 0.16393443
183    61 green 0.29508197
184    62   red 0.54838710
185    62  blue 0.16129032
186    62 green 0.29032258
187    63   red 0.50793651
188    63  blue 0.25396825
189    63 green 0.23809524
190    64   red 0.45312500
191    64  blue 0.17187500
192    64 green 0.37500000
193    65   red 0.46153846
194    65  blue 0.07692308
195    65 green 0.46153846
196    66   red 0.46969697
197    66  blue 0.27272727
198    66 green 0.25757576
199    67   red 0.44776119
200    67  blue 0.23880597
201    67 green 0.31343284
202    68   red 0.57352941
203    68  blue 0.20588235
204    68 green 0.22058824
205    69   red 0.49275362
206    69  blue 0.20289855
207    69 green 0.30434783
208    70   red 0.50000000
209    70  blue 0.17142857
210    70 green 0.32857143
211    71   red 0.50704225
212    71  blue 0.19718310
213    71 green 0.29577465
214    72   red 0.55555556
215    72  blue 0.19444444
216    72 green 0.25000000
217    73   red 0.46575342
218    73  blue 0.21917808
219    73 green 0.31506849
220    74   red 0.55405405
221    74  blue 0.17567568
222    74 green 0.27027027
223    75   red 0.53333333
224    75  blue 0.20000000
225    75 green 0.26666667
226    76   red 0.46052632
227    76  blue 0.21052632
228    76 green 0.32894737
229    77   red 0.62337662
230    77  blue 0.14285714
231    77 green 0.23376623
232    78   red 0.39743590
233    78  blue 0.20512821
234    78 green 0.39743590
235    79   red 0.54430380
236    79  blue 0.17721519
237    79 green 0.27848101
238    80   red 0.46250000
239    80  blue 0.25000000
240    80 green 0.28750000
241    81   red 0.58024691
242    81  blue 0.14814815
243    81 green 0.27160494
244    82   red 0.59756098
245    82  blue 0.18292683
246    82 green 0.21951220
247    83   red 0.56626506
248    83  blue 0.16867470
249    83 green 0.26506024
250    84   red 0.46428571
251    84  blue 0.23809524
252    84 green 0.29761905
253    85   red 0.48235294
254    85  blue 0.28235294
255    85 green 0.23529412
256    86   red 0.52325581
257    86  blue 0.13953488
258    86 green 0.33720930
259    87   red 0.50574713
260    87  blue 0.25287356
261    87 green 0.24137931
262    88   red 0.56818182
263    88  blue 0.13636364
264    88 green 0.29545455
265    89   red 0.51685393
266    89  blue 0.25842697
267    89 green 0.22471910
268    90   red 0.60000000
269    90  blue 0.14444444
270    90 green 0.25555556
271    91   red 0.51648352
272    91  blue 0.18681319
273    91 green 0.29670330
274    92   red 0.51086957
275    92  blue 0.14130435
276    92 green 0.34782609
277    93   red 0.47311828
278    93  blue 0.18279570
279    93 green 0.34408602
280    94   red 0.40425532
281    94  blue 0.25531915
282    94 green 0.34042553
283    95   red 0.34736842
284    95  blue 0.25263158
285    95 green 0.40000000
286    96   red 0.51041667
287    96  blue 0.21875000
288    96 green 0.27083333
289    97   red 0.51546392
290    97  blue 0.19587629
291    97 green 0.28865979
292    98   red 0.44897959
293    98  blue 0.26530612
294    98 green 0.28571429
295    99   red 0.49494949
296    99  blue 0.22222222
297    99 green 0.28282828
298   100   red 0.50000000
299   100  blue 0.24000000
300   100 green 0.26000000
301   101   red 0.47524752
302   101  blue 0.16831683
303   101 green 0.35643564
304   102   red 0.43137255
305   102  blue 0.23529412
306   102 green 0.33333333
307   103   red 0.51456311
308   103  blue 0.26213592
309   103 green 0.22330097
310   104   red 0.54807692
311   104  blue 0.20192308
312   104 green 0.25000000
313   105   red 0.55238095
314   105  blue 0.16190476
315   105 green 0.28571429
316   106   red 0.58490566
317   106  blue 0.13207547
318   106 green 0.28301887
319   107   red 0.52336449
320   107  blue 0.18691589
321   107 green 0.28971963
322   108   red 0.50000000
323   108  blue 0.18518519
324   108 green 0.31481481
325   109   red 0.53211009
326   109  blue 0.16513761
327   109 green 0.30275229
328   110   red 0.49090909
329   110  blue 0.20000000
330   110 green 0.30909091
331   111   red 0.56756757
332   111  blue 0.19819820
333   111 green 0.23423423
334   112   red 0.46428571
335   112  blue 0.18750000
336   112 green 0.34821429
337   113   red 0.49557522
338   113  blue 0.23008850
339   113 green 0.27433628
340   114   red 0.49122807
341   114  blue 0.20175439
342   114 green 0.30701754
343   115   red 0.43478261
344   115  blue 0.22608696
345   115 green 0.33913043
346   116   red 0.58620690
347   116  blue 0.16379310
348   116 green 0.25000000
349   117   red 0.54700855
350   117  blue 0.17948718
351   117 green 0.27350427
352   118   red 0.52542373
353   118  blue 0.25423729
354   118 green 0.22033898
355   119   red 0.46218487
356   119  blue 0.22689076
357   119 green 0.31092437
358   120   red 0.49166667
359   120  blue 0.20833333
360   120 green 0.30000000
361   121   red 0.45454545
362   121  blue 0.23140496
363   121 green 0.31404959
364   122   red 0.46721311
365   122  blue 0.24590164
366   122 green 0.28688525
367   123   red 0.44715447
368   123  blue 0.23577236
369   123 green 0.31707317
370   124   red 0.55645161
371   124  blue 0.17741935
372   124 green 0.26612903
373   125   red 0.52000000
374   125  blue 0.17600000
375   125 green 0.30400000
376   126   red 0.50793651
377   126  blue 0.21428571
378   126 green 0.27777778
379   127   red 0.54330709
380   127  blue 0.12598425
381   127 green 0.33070866
382   128   red 0.50000000
383   128  blue 0.22656250
384   128 green 0.27343750
385   129   red 0.48062016
386   129  blue 0.18604651
387   129 green 0.33333333
388   130   red 0.50000000
389   130  blue 0.21538462
390   130 green 0.28461538
391   131   red 0.53435115
392   131  blue 0.16030534
393   131 green 0.30534351
394   132   red 0.50757576
395   132  blue 0.22727273
396   132 green 0.26515152
397   133   red 0.58646617
398   133  blue 0.14285714
399   133 green 0.27067669
400   134   red 0.47761194
401   134  blue 0.26119403
402   134 green 0.26119403
403   135   red 0.48888889
404   135  blue 0.18518519
405   135 green 0.32592593
406   136   red 0.52941176
407   136  blue 0.23529412
408   136 green 0.23529412
409   137   red 0.59124088
410   137  blue 0.14598540
411   137 green 0.26277372
412   138   red 0.52898551
413   138  blue 0.21014493
414   138 green 0.26086957
415   139   red 0.46762590
416   139  blue 0.19424460
417   139 green 0.33812950
418   140   red 0.53571429
419   140  blue 0.16428571
420   140 green 0.30000000
421   141   red 0.52482270
422   141  blue 0.16312057
423   141 green 0.31205674
424   142   red 0.44366197
425   142  blue 0.25352113
426   142 green 0.30281690
427   143   red 0.48951049
428   143  blue 0.18181818
429   143 green 0.32867133
430   144   red 0.52777778
431   144  blue 0.19444444
432   144 green 0.27777778
433   145   red 0.58620690
434   145  blue 0.13103448
435   145 green 0.28275862
436   146   red 0.47260274
437   146  blue 0.19863014
438   146 green 0.32876712
439   147   red 0.43537415
440   147  blue 0.24489796
441   147 green 0.31972789
442   148   red 0.54729730
443   148  blue 0.19594595
444   148 green 0.25675676
445   149   red 0.49664430
446   149  blue 0.21476510
447   149 green 0.28859060
448   150   red 0.48000000
449   150  blue 0.23333333
450   150 green 0.28666667
451   151   red 0.49668874
452   151  blue 0.16556291
453   151 green 0.33774834
454   152   red 0.50657895
455   152  blue 0.21052632
456   152 green 0.28289474
457   153   red 0.41176471
458   153  blue 0.26797386
459   153 green 0.32026144
460   154   red 0.52597403
461   154  blue 0.15584416
462   154 green 0.31818182
463   155   red 0.49032258
464   155  blue 0.25161290
465   155 green 0.25806452
466   156   red 0.53205128
467   156  blue 0.19871795
468   156 green 0.26923077
469   157   red 0.51592357
470   157  blue 0.22929936
471   157 green 0.25477707
472   158   red 0.53797468
473   158  blue 0.17088608
474   158 green 0.29113924
475   159   red 0.47798742
476   159  blue 0.20125786
477   159 green 0.32075472
478   160   red 0.47500000
479   160  blue 0.16875000
480   160 green 0.35625000
481   161   red 0.52795031
482   161  blue 0.21118012
483   161 green 0.26086957
484   162   red 0.51234568
485   162  blue 0.20987654
486   162 green 0.27777778
487   163   red 0.49079755
488   163  blue 0.20858896
489   163 green 0.30061350
490   164   red 0.51829268
491   164  blue 0.21951220
492   164 green 0.26219512
493   165   red 0.50909091
494   165  blue 0.16969697
495   165 green 0.32121212
496   166   red 0.42168675
497   166  blue 0.24096386
498   166 green 0.33734940
499   167   red 0.48502994
500   167  blue 0.20958084
501   167 green 0.30538922
502   168   red 0.47619048
503   168  blue 0.17261905
504   168 green 0.35119048
505   169   red 0.54437870
506   169  blue 0.15384615
507   169 green 0.30177515
508   170   red 0.52352941
509   170  blue 0.21176471
510   170 green 0.26470588
511   171   red 0.48538012
512   171  blue 0.19298246
513   171 green 0.32163743
514   172   red 0.50000000
515   172  blue 0.15697674
516   172 green 0.34302326
517   173   red 0.48554913
518   173  blue 0.16763006
519   173 green 0.34682081
520   174   red 0.45402299
521   174  blue 0.19540230
522   174 green 0.35057471
523   175   red 0.49714286
524   175  blue 0.17714286
525   175 green 0.32571429
526   176   red 0.47159091
527   176  blue 0.17613636
528   176 green 0.35227273
529   177   red 0.49717514
530   177  blue 0.16949153
531   177 green 0.33333333
532   178   red 0.47191011
533   178  blue 0.17977528
534   178 green 0.34831461
535   179   red 0.54189944
536   179  blue 0.17318436
537   179 green 0.28491620
538   180   red 0.47777778
539   180  blue 0.17222222
540   180 green 0.35000000
541   181   red 0.54696133
542   181  blue 0.16574586
543   181 green 0.28729282
544   182   red 0.52197802
545   182  blue 0.19780220
546   182 green 0.28021978
547   183   red 0.50273224
548   183  blue 0.20218579
549   183 green 0.29508197
550   184   red 0.47282609
551   184  blue 0.19021739
552   184 green 0.33695652
553   185   red 0.48108108
554   185  blue 0.16756757
555   185 green 0.35135135
556   186   red 0.43010753
557   186  blue 0.22580645
558   186 green 0.34408602
559   187   red 0.41711230
560   187  blue 0.22994652
561   187 green 0.35294118
562   188   red 0.57446809
563   188  blue 0.15425532
564   188 green 0.27127660
565   189   red 0.53968254
566   189  blue 0.18518519
567   189 green 0.27513228
568   190   red 0.45789474
569   190  blue 0.22105263
570   190 green 0.32105263
571   191   red 0.56544503
572   191  blue 0.18848168
573   191 green 0.24607330
574   192   red 0.49479167
575   192  blue 0.20833333
576   192 green 0.29687500
577   193   red 0.42487047
578   193  blue 0.19170984
579   193 green 0.38341969
580   194   red 0.52577320
581   194  blue 0.22680412
582   194 green 0.24742268
583   195   red 0.48205128
584   195  blue 0.23076923
585   195 green 0.28717949
586   196   red 0.49489796
587   196  blue 0.19387755
588   196 green 0.31122449
589   197   red 0.52284264
590   197  blue 0.16751269
591   197 green 0.30964467
592   198   red 0.44949495
593   198  blue 0.22727273
594   198 green 0.32323232
595   199   red 0.50251256
596   199  blue 0.22613065
597   199 green 0.27135678
598   200   red 0.49000000
599   200  blue 0.20500000
600   200 green 0.30500000

room_pref

  • Preferences: 60% prefer red, 30% blue, 10% green
room_pref <- function(red_p, blue_p, green_p) {
  dorms <- c("red", "blue", "green")
  prob <- c(red_p, blue_p, green_p)
  sample(dorms, size = 3, replace = FALSE, prob = prob)
}

It orders a list of dorm preference ranks by our desired likely probability for each person

space_identifier

space_identifier <- function(color_pref, room_occ, r_rooms, b_rooms, g_rooms) {
  occ <- c(r_rooms, b_rooms, g_rooms)
  
  colors <- c("red", "blue", "green")
  color_num <- match(color_pref, colors)
  
  if (occ[color_num] < room_occ[color_num]) {
    return(colors[color_num])
  }
  return("no")
}

room_assignment

room_assignment <- function(pref_order, room_occ, r_rooms, b_rooms, g_rooms) {
  for (pref in pref_order) {
    room <- space_identifier(pref, room_occ, r_rooms, b_rooms, g_rooms)
    if (room != "no") return(room)
  }
}

my_room

my_room <- function(lottery_num, pref_probs, room_occ) {
  r_rooms <- 0
  b_rooms <- 0
  g_rooms <- 0
  my_room_color <- ""
  map(1:lottery_num, function(num) {
    
    if (num == lottery_num) {
      my_room_color <<- room_assignment(c("red", "blue", "green"), room_occ, r_rooms, b_rooms, g_rooms)
    }
    
    # Getting Individual Room Prefs
    pref_order <- room_pref(pref_probs[[1]], pref_probs[[2]], pref_probs[[3]])
    
    room <- room_assignment(pref_order, room_occ, r_rooms, b_rooms, g_rooms)
    
    if (room == "red") {r_rooms <<- r_rooms + 1}
    if (room == "blue") {b_rooms <<- b_rooms + 1}
    if (room == "green") {g_rooms <<- g_rooms + 1}
  })
  return(my_room_color)
}

My Room Draw

My Room Draw

My Room Draw

My Room Draw

My Room Draw

room_draws

room_draws <- function(draws, pref_probs, room_occ) {

  room_given <- map(1:draws, function(draw) {
      lottery_num = sample(1:sum(room_occ), 1, replace = FALSE)
      my_room(lottery_num, pref_probs, room_occ) 
    }
  ) |> 
    unlist()
  tibble(
    draws = c(draws),
    red = c(calculate_proportion(room_given, "red")),
    blue = c(calculate_proportion(room_given, "blue")),
    green = c(calculate_proportion(room_given, "green"))
  )
}

Room Draw

Number of Draws To Proportions